const { DataTypes } = require('sequelize')
const seq = require('../utils/seq')
const moment = require('moment')
// user 模型

/**
 *用户id：id uuid 必填
  用户名称：username string 必填
  用户密码：password string 必填
  用户昵称：nickname string 必填
  用户头像：avatar string 默认https://gitee.com/dulily/cdn/raw/master/img/ava.png
  手机号码：phone sring
  用户性别：gender string 男/女/未知
  备注：remark string
  邮箱：email string
  创建时间：ctime string 默认moment当前时间
  更新时间：mtime string  默认moment当前时间
  用户状态：status tinyint(1) 0正常/1停用 必填
 */

const User = seq.define('user', {
  // 在这里定义模型属性
  id: {
    type: DataTypes.UUID,
    primaryKey: true,
    allowNull: false,
    defaultValue: DataTypes.UUIDV4,
    comment: '用户id'
  },
  username: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '用户名'
    // unique: true
  },
  password: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '密码'
  },
  nickname: {
    type: DataTypes.STRING,
    allowNull: false,
    defaultValue: 'new user',
    comment: '用户昵称'
  },
  avatar: {
    type: DataTypes.STRING,
    defaultValue: 'https://gitee.com/dulily/cdn/raw/master/img/ava.png',
    comment: '用户头像'
  },
  phone: {
    type: DataTypes.STRING,
    comment: '手机号码'
  },
  gender: {
    type: DataTypes.STRING,
    comment: '用户性别'
  },
  remark: {
    type: DataTypes.STRING,
    comment: '备注'
  },
  email: {
    type: DataTypes.STRING,
    comment: '邮箱'
  },
  ctime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '创建时间'
  },
  mtime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '更新时间'
  },
  status: {
    type: DataTypes.BOOLEAN,
    allowNull:  false,
    defaultValue: true,
    comment: '用户状态'
  }
})

module.exports = User